home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Python 1.3.3 / Python 133 SRC / Mac / Modules / evt / evtscan.py < prev    next >
Text File  |  1996-04-12  |  2KB  |  70 lines

  1. # Scan an Apple header file, generating a Python file of generator calls.
  2.  
  3. import addpack
  4. addpack.addpack(':tools:bgen:bgen')
  5. from scantools import Scanner
  6. from bgenlocations import TOOLBOXDIR
  7.  
  8. LONG = "Events"
  9. SHORT = "evt"
  10. OBJECT = "NOTUSED"
  11.  
  12. def main():
  13.     input = LONG + ".h"
  14.     output = SHORT + "gen.py"
  15.     defsoutput = TOOLBOXDIR + LONG + ".py"
  16.     scanner = MyScanner(input, output, defsoutput)
  17.     scanner.scan()
  18.     scanner.close()
  19.     print "=== Done scanning and generating, now importing the generated code... ==="
  20.     exec "import " + SHORT + "support"
  21.     print "=== Done.  It's up to you to compile it now! ==="
  22.  
  23. class MyScanner(Scanner):
  24.  
  25.     def destination(self, type, name, arglist):
  26.         classname = "Function"
  27.         listname = "functions"
  28.         if arglist:
  29.             t, n, m = arglist[0]
  30.             # This is non-functional today
  31.             if t == OBJECT and m == "InMode":
  32.                 classname = "Method"
  33.                 listname = "methods"
  34.         return classname, listname
  35.  
  36.     def makeblacklistnames(self):
  37.         return [
  38.             "KeyTranslate",
  39.             "GetEventMask",        # I cannot seem to find this routine...
  40.             ]
  41.  
  42.     def makeblacklisttypes(self):
  43.         return [
  44.             "EvQElPtr", "QHdrPtr"
  45.             ]
  46.  
  47.     def makerepairinstructions(self):
  48.         return [
  49.             ([("void_ptr", "*", "InMode"), ("long", "*", "InMode")],
  50.              [("InBuffer", "*", "*")]),
  51.             
  52.             ([("void", "*", "OutMode"), ("long", "*", "InMode"),
  53.                                         ("long", "*", "OutMode")],
  54.              [("VarVarOutBuffer", "*", "InOutMode")]),
  55.             
  56.             ([("void", "wStorage", "OutMode")],
  57.              [("NullStorage", "*", "InMode")]),
  58.             
  59.             # GetKeys
  60.             ([('KeyMap', 'theKeys', 'InMode')],
  61.              [('*', '*', 'OutMode')]),
  62.              
  63.             # GetTicker
  64.             ([('unsigned long', '*', '*')],
  65.              [('unsigned_long', '*', '*')]),
  66.             ]
  67.             
  68. if __name__ == "__main__":
  69.     main()
  70.